iOS 控件私有属性遍历

控件私有属性遍历主要利用OC的RunTime机制
首先加入头文件

1
#import <objc/runtime.h>

写入代码

1
2
3
4
5
6
7
8
9
10
11
12
unsigned int outCount = 0;
Ivar *ivars = class_copyIvarList([NSClassFromString(@"UIView") class], &outCount);

for (NSInteger i = 0; i < outCount; ++i) {
// 遍历取出该类成员变量
Ivar ivar = *(ivars + i);

NSLog(@"\n name = %s \n type = %s", ivar_getName(ivar),ivar_getTypeEncoding(ivar));
}

// 根据内存管理原则释放指针
free(ivars);

通过KVC进行修改

1
2
    //拿到私有的属性forKey: 进行改变setValue:
// [self.view setValue:<#(nullable id)#> forKey:<#(nonnull NSString *)#>];
-------------本文结束感谢阅读-------------